\documentclass[10.5pt, a4paper]{article}

\usepackage{xeCJK}
\newCJKfontfamily{\heiti}[AutoFakeBold={3.17}]{SimHei}

\usepackage{geometry}
\geometry{
    left = 0.6in,
    right = 0.6in,
    top = 0.8in,
    bottom = 1.0in
}
\usepackage{amssymb,amsbsy,amsmath,xcolor,mathrsfs,graphicx}
\usepackage{listings}
\usepackage{tasks}
\settasks{
    label = \Alph*. ,
    label-width = 16pt
}

\renewcommand{\title}[3]{
    \begin{center}
        \Large\heiti #1~年~#2~月 Python~#3级考试
    \end{center}
}
\newcommand{\TimeAndName}[1]{
    \begin{center}
        考试时间:~#1~ 分钟 \qquad\qquad\qquad\qquad 姓名:\underline{\quad\quad\quad\quad}
    \end{center}
}

\begin{document}
    \lstset{
        language = python,
        keywordstyle = \color{orange}\bfseries,
        emph = {print,bool,chr,ord,sorted,float,type,oct,hex,abs,sum,len,int,open,list,map,
        str},
        emphstyle = \color{purple}\bfseries,
        showspaces = false,
        basicstyle = \ttfamily,
        morekeywords = {True,False}
    }

    \title{2020}{12}{一}
    
    \TimeAndName{60}
    
    \vspace{1cm}
    {\noindent\heiti 第一部分、单选题(共 25 题,每题 2 分,共50分.)}

    \begin{enumerate}
        % 1
        \item 执行语句\lstinline!print(10==10.0)!的结果为?(\qquad)
        \begin{tasks}(4)
            \task 10
            \task 10.0
            \task True
            \task False
        \end{tasks}
    

        % 2
        \item 执行语句\lstinline!y=4**3!后，变量y的值为?(\qquad)
        \begin{tasks}(4)
            \task 0
            \task 12
            \task 64
            \task 81
        \end{tasks}

        % 3
        \item 执行\lstinline!(2*3)/(9-3*2)!输出的结果是什么?(\qquad)
        \begin{tasks}(4)
            \task 1
            \task 2.0
            \task 2
            \task 1.0
        \end{tasks}
    
        % 4
        \item  \lstinline!print(12.34-1.34)!的输出结果是?(\qquad)
        \begin{tasks}(4)
            \task 11
            \task 11.0
            \task 11.00
            \task 12.34-1.34
        \end{tasks}

        % 5
        \item 已知变量\lstinline!a=2，b=3!，执行语句\lstinline!a%=a+b!后，变量a的值为?(\qquad)
        \begin{tasks}(4)
            \task 0
            \task 2
            \task 3
            \task 12
        \end{tasks}

        % 6
        \item Turtle库中，画笔绘制的速度范围为?(\qquad)
        \begin{tasks}(2)
            \task 任意大小
            \task 0到10之间的整数(含0和10)
            \task 1到10之间的整数(含1和10)
            \task 0到100之间的整数(含0和100)
        \end{tasks}

        % 7
        \item \lstinline!print("a"+'b'*2)!结果是?(\qquad)
        \begin{tasks}(4)
            \task ab2
            \task abb
            \task abab
            \task ab
        \end{tasks}

        % 8
        \item  Python编程语言的注释语句是以(\qquad)开头?
        \begin{tasks}(4)
            \task '
            \task //
            \task \#
            \task \{
        \end{tasks}

        % 9
        \item \lstinline!a="我要做作业"!,\lstinline!b="我要学习"!，以下哪种是可以输出这两句中文的?(\qquad)
        \begin{tasks}(4)
            \task \lstinline!print(a+b)!
            \task \lstinline!print('a'+'b')!
            \task \lstinline!print("a+b")!
            \task \lstinline!print("a"+"b")!
        \end{tasks}

        % 10
        \item \lstinline!type()!函数返回对象的类型，那么\lstinline!print(type("7654"))!输出的结果是?(\qquad)
        \begin{tasks}(4)
            \task \lstinline!<class 'str'>!
            \task \lstinline!<class 'int'>!
            \task \lstinline!<class 'float'>!
            \task \lstinline!<class 'bool'>!
        \end{tasks}

        % 11
        \item Python中，用什么方式实现代码快速缩进??(\qquad)
        \begin{tasks}(4)
            \task 按4次空格键
            \task tab键
            \task shift+tab键
            \task alt+tab键
        \end{tasks}

        % 12
        \item \lstinline!print(3456%100)!的结果是?(\qquad)
        \begin{tasks}(4)
            \task 34.56
            \task 34
            \task 56
            \task 34.5
        \end{tasks}

        % 13
        \item 在turtle库中的指令，以下哪个不会使得海龟发生位置移动变化的?(\qquad)
        \begin{tasks}(2)
            \task 在turtle库中的指令forward()
            \task 在turtle库中的指令goto()
            \task 在turtle库中的指令setup()
            \task 在turtle库中的指令home()
        \end{tasks}

        % 14
        \item 下列哪个函数的功能是将字符串和数字转换成整数?(\qquad)
        \begin{tasks}(4)
            \task float()
            \task int()
            \task round()
            \task ord()
        \end{tasks}
        
        % 15
        \item Turtle库中，用于将画笔移动到坐标(x,y)位置的命令是?(\qquad)
        \begin{tasks}(4)
            \task turtle.go(y,x)
            \task turtle.go(x,y)
            \task turtle.goto(x,y)
            \task turtle.goto(y,x)
        \end{tasks}

        % 16
        \item 以下哪个变量命名不符合Python规范?(\qquad)
        \begin{tasks}(2)
            \task 语言='Python'
            \task \_language='Python'
            \task language='Python'
            \task .language='Python'
        \end{tasks}

        % 17
        \item 以下哪个不是Python开发工具?(\qquad)
        \begin{tasks}(4)
            \task idle
            \task jupyter
            \task shell
            \task pycharm
        \end{tasks}

        % 18
        \item 下列代码运行的结果是?(\qquad)
        \begin{lstlisting}
            a = 0
            b = False
            print(a==b)
        \end{lstlisting}
        \begin{tasks}(4)
            \task 0
            \task False
            \task True
            \task error
        \end{tasks}

        % 19
        \item 要抽出一个三位数的个位上的数字，如三位数479，可以输入以下哪个代码可以获得其中的个位数上的9?(\qquad)
        \begin{tasks}(4)
            \task \lstinline!print(479\%10//10)!
            \task \lstinline!print(479//10//10)!
            \task \lstinline!print(479\%10\%10)!
            \task \lstinline!print(479//10\%10)!
        \end{tasks}

        % 20
        \item 右面图形\includegraphics[width=.05\textwidth]{20.png}最有可能是哪个选项的代码执行后的效果?(\qquad)
        \begin{tasks}(2)
            \task 
            \lstinline!import turtle!\\
            \lstinline!turtle.pensize(5)!\\
            \lstinline!turtle.begin_fill()!\\
            \lstinline!turtle.color("red")!\\
            \lstinline!turtle.fillcolor ("yellow")!\\
            \lstinline!turtle.circle(50,steps=6)!\\
            \lstinline!turtle.end_fill()!\\
            \lstinline!turtle.hideturtle()!
            \task 
            \lstinline!import turtle!\\
            \lstinline!turtle.pensize(5)!\\
            \lstinline!turtle.color("red")!\\
            \lstinline!turtle.begin_fill()!\\
            \lstinline!turtle.fillcolor("yellow")!\\
            \lstinline!turtle.circle(50,steps=6)!\\
            \lstinline!turtle.end_fill()!\\
            \lstinline!turtle.hideturtle()!
            \task 
            \lstinline!import turtle!\\
            \lstinline!turtle.pensize(5)!\\
            \lstinline!turtle.fillcolor("red")!\\
            \lstinline!turtle.begin_fill()!\\
            \lstinline!turtle.color("yellow")!\\
            \lstinline!turtle.circle(50,steps=6)!\\
            \lstinline!turtle.end_fill()!\\
            \lstinline!turtle.hideturtle()!\\
            \task 
            \lstinline!import turtle!\\
            \lstinline!turtle.pensize(5)!\\
            \lstinline!turtle.begin_fill()!\\
            \lstinline!turtle.color ("red", "yellow")!\\
            \lstinline!turtle.circle(50,steps=6)!\\
            \lstinline!turtle.end_fill()!\\
            \lstinline!turtle.hideturtle()!\\
        \end{tasks}

        % 21
        \item 海龟作图中，默认的海龟方向的朝向是?(\qquad)
        \begin{tasks}(4)
            \task 朝左
            \task 朝右
            \task 朝上
            \task 朝下
        \end{tasks}

        % 22
        \item \lstinline!print(2*3>4*2 or "121">"12" and 7%3 == 4%3)!的结果是?(\qquad)
        \begin{tasks}(4)
            \task False
            \task True
            \task 3
            \task 4
        \end{tasks}

        % 23
        \item 使在turtle库中的指令，以下哪条指令与颜色无关的?(\qquad)
        \begin{tasks}(2)
            \task 在turtle库中的指令fillcolor()
            \task 在turtle库中的指令pencolor()
            \task 在turtle库中的指令color()
            \task 在turtle库中的指令penup()
        \end{tasks}

        % 24
        \item 运行\lstinline!print('a'<'b')!的结果是?(\qquad)
        \begin{tasks}(4)
            \task a
            \task b
            \task True
            \task False
        \end{tasks}

        % 25
        \item Turtle库中，设置画粗细的命令是?(\qquad)
        \begin{tasks}(2)
            \task turtle.pensize()
            \task turtle.penwidth()
            \task turtle.penpoint()
            \task turtle.pencolor()
        \end{tasks}
    \end{enumerate}

    \vspace{1cm}
    {\noindent\heiti 第二部分、判断题(共 10 题,每题 2 分,共20分.)}
    \begin{enumerate}
        \setcounter{enumi}{25}
        % 26
        \item Python文件的后缀名可以使.py和.pyw(\qquad)

        %27
        \item 执行下面代码
        \begin{lstlisting}
            s = 23.4
            t = int(s) + 1
        \end{lstlisting}
        那么\lstinline!print(t)!的结果是24.4(\qquad)
        
        %28
        \item 在Python中，\lstinline!input("请输入")!，运行后如果输入3+8，则返回结果为11.(\qquad)
  
        %29
        \item as，is，class是Python中常用保留字，不可以作为变量名.(\qquad)
        
        %30
        \item 当启动IDLE时，默认打开的是交互式编程环境，如果要编写连续的程序，需要使用脚本式编程环境，在IDLE中菜单栏中选择File->New File新建打开.(\qquad)
        
        %31
        \item 使用三层双引号或三层单引号都可以做多行注释.(\qquad)
        
        %32
        \item Turle库中，\lstinline!turtle.backward(200)!和\lstinline!turtle.forward(-200)!的使用效果是一样的.(\qquad)
        
        %33
        \item 语句m+=n的意义是m=m+n.(\qquad)
        
        %34
        \item \lstinline!trutle.color("red","blue"), turtle.circle(120,steps=3)!可以画出一个边框为红色,里面填充颜色为蓝色的三角形.(\qquad)
        
        %35
        \item \lstinline!int(6.9)!运行结果是7.(\qquad)
    \end{enumerate}

    % \newpage
    {\noindent\heiti 第三部分、编程题(共 2 题,共30分.)}
    \begin{enumerate}
        \setcounter{enumi}{35}
        
        % 36
        \item 计算题:(10分)
        
        时间转换:输入一个总秒数,计算是几小时几分几秒,并一行输出.

        {\heiti 要求}:

        (1) 输入一行,一个整数,表示总秒数;

        (2) 输出一行,三个整数,表示小时、分钟、秒,每两个数之间用一个空格隔开.

        输入样例: 7201

        输出样例: 2 0 1
        \vfill

        %37
        \item 绘制如下图形:
        
        \begin{minipage}{.6\textwidth}
            \begin{tasks}[label=\arabic*.]
                \task 画一个由两个直角三角形组成的正方形,边长为180像素;
                \task 左上角三角形填充为黄色,右下三角形填充为红色;
                \task 设置画笔速度为1,线条为黑色;
                \task 画图结束,隐藏并停止画笔.
            \end{tasks}
        \end{minipage}
        \begin{minipage}{.38\textwidth}
            \centering
            \includegraphics[width=.5\textwidth]{37.png}
        \end{minipage}
        \vfill
    \end{enumerate}

    \newpage
    \begin{center}
        \Huge \heiti 参考答案
    \end{center}

        \begin{tasks}[label=\arabic*.](5)
            \task C
            \task C
            \task B
            \task B
            \task B

            \task B
            \task C
            \task C
            \task A
            \task A

            \task B
            \task C
            \task C
            \task B
            \task C

            \task D
            \task C
            \task C
            \task C
            \task C

            \task B
            \task B
            \task D
            \task C
            \task A

            \task $\checkmark$
            \task $\times$
            \task $\times$
            \task $\checkmark$
            \task $\checkmark$

            \task $\checkmark$
            \task $\checkmark$
            \task $\checkmark$
            \task $\times$
            \task $\times$
        \end{tasks}

        \begin{enumerate}
            \setcounter{enumi}{35}
            \item \begin{lstlisting}
                s = int(input())
                print(s//3600, s//60%60, s%60)
            \end{lstlisting}

            \item \begin{lstlisting}
                import turtle as t

                t.speed(1)
                t.color("black")

                t.fillcolor("yellow")
                t.begin_fill()
                t.goto(180,0)
                t.goto(0,-180)
                t.goto(0,0)
                t.end_fill()

                t.fillcolor("red")
                t.penup()
                t.goto(180,-180)
                t.pendown()
                t.begin_fill()
                t.goto(180,0)
                t.goto(0,-180)
                t.goto(180,-180)
                t.end_fill()

                t.hideturtle()
                t.done()
            \end{lstlisting}
        \end{enumerate}
\end{document}